<?php
class Ext_Utils_Pdftk
{
    private $_command = array();
    const MODULE = 'Utils';
    const SECTION = 'pdftk';
    /**
     * Objeto de la libreria de configuracion
     * 
     * @var objeto
     */
    protected $_config;
    public function __construct()
    {
       /**
         * Configuracion de base de datos, archivos config y otros
         */
        $this->_config = new Ext_Generic_Config();
        $this->_config->run();
    }
    /**
     * Iniciamos el string, con el binario
     *
     * @return Ext_Utils_Pdftk
     */
    public function init()
    {
        $this->_command[] = $this->_config->getValue(
                    self::MODULE, self::SECTION, 'binary'
                );
        return $this;
    }
    /**
     * Establece la ruta y el archivo del cual se va a generar el pdf resultante
     *
     * @param string $pathFile
     * @return Ext_Utils_Pdftk
     */
    public function file ($pathFile)
    {
        if(file_exists($pathFile)){
            $this->_command[] = $pathFile;
            return $this;          
        }
        return false;          
    }
    /**
     * Estableece el rango de paginas que se van a 
     *
     * @param string $range
     * @return Ext_Utils_Pdftk
     */
    public function cat ($range)
    {
        $this->_command[] = 'cat '. $range;
        return $this;
    }
    /**
     * Setea el archivo resultante
     *
     * @param string $fileName
     * @return Ext_Utils_Pdftk
     */
    public function output($fileName)
    {
        $this->_command[] = 'output ' . $fileName;
        return $this;
    }
    /**
     * Procesa el comando. 
     *
     * @return boolean
     */
    public function execute ()
    {
        foreach ($this->_command as $command){
            $script .= $command . ' ';    
        }
        $system = new Ext_Utils_System();
        return $system->execute($command);
    }
}
?>